/* NFE
* (C) Copyright Beetlestech , Ltd. 2014, All Rights Reserved.
*/
package com.beetlestech.nfe.main.biz.com;

import com.beetlestech.nfe.main.biz.com.dto.CodeWithValueDTO;
import com.beetlestech.nfe.main.biz.constant.MasterCacheConstant;

/**
 * マスターキャッシュ Bizロジックのインタフェース
 *
 * 変更履歴
 * REV.         変更日付           変更者              変更内容
 * -------      ---------------    ----------------    ------------------
 * 1.0          2013/04/17         GD Ma Ji Ao         新規作成
 *
 */
public interface HbMasterCache {

	/**
	 * マスターキャッシュを取得する
	 *
	 *
	 * @param name キャッシュ名
	 * @param parameters パラメーター
	 * @param <E> マスターキャッシュ型
	 * @return キャッシュデータ
	 */
	public <E> E getMasterData(
			MasterCacheConstant.MASTER_NAME name,
			Object... parameters);

	/**
	 * マスターキャッシュを再作成する
	 *
	 *
	 * @param name キャッシュ名
	 */
	public void refreshMasterData(
			MasterCacheConstant.MASTER_NAME name);

	/**
	 * マスターキャッシュをロードする
	 *
	 *
	 * @param name キャッシュ名
	 */
	public void loadMasterData(
			MasterCacheConstant.MASTER_NAME name);
	
	public CodeWithValueDTO[] getMasterList(
			MasterCacheConstant.MASTER_NAME name);

}